_require "./General.smi"
_require "./StringCvt.smi"
_require "./IntInf.smi"
_require local "./SMLSharp_ScanChar.smi"
_require local "./String.smi"
_use local "./Int_common.sml"

structure Int32 =
struct
  val toLarge = IntInf.fromInt
  val fromLarge = IntInf.toInt
  val toInt : int32 -> int
  val fromInt : int -> int32
  val precision : int option
  val minInt : int32 option
  val maxInt : int32 option
  val + = SMLSharp_Builtin.Int32.add_unsafe
  val - = SMLSharp_Builtin.Int32.sub_unsafe
  val * = SMLSharp_Builtin.Int32.mul_unsafe
  val div = SMLSharp_Builtin.Int32.div
  val mod = SMLSharp_Builtin.Int32.mod
  val quot = SMLSharp_Builtin.Int32.quot
  val rem = SMLSharp_Builtin.Int32.rem
  val compare : int32 * int32 -> General.order
  val < = SMLSharp_Builtin.Int32.lt
  val <= = SMLSharp_Builtin.Int32.lteq
  val > = SMLSharp_Builtin.Int32.gt
  val >= = SMLSharp_Builtin.Int32.gteq
  val ~ = SMLSharp_Builtin.Int32.neg
  val abs = SMLSharp_Builtin.Int32.abs
  val min : int32 * int32 -> int32
  val max : int32 * int32 -> int32
  val sign : int32 -> int32
  val sameSign : int32 * int32 -> bool
  val fmt : StringCvt.radix -> int32 -> string
  val toString : int32 -> string
  val scan : StringCvt.radix
             -> (char, 'a) StringCvt.reader
             -> (int32, 'a) StringCvt.reader
  val fromString : string -> int32 option
  type int = int32
end

structure Position = Int32
structure Int = Int32
